.container {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1rem;
    max-width: 48rem;
    text-align: left; 
}

header {
    display: grid;
    grid-template-columns: 50% 20% 30%;
    grid-template-rows: auto auto;
    /* border-bottom: 0.1rem solid #adb5bd; */
    padding-top: 2.2rem;
}

.name-wrapper {
    display: grid;
    grid-template-columns: auto auto;
}

.title {
    font-size: 2rem; 
    margin-top: .8rem;
}
  
.sub-title {
    font-size: 1rem;
    margin-top: 1.8rem; 
}
  
.contact {
    font-size: 1rem;
    grid-row-start: 2;
    display: inline-grid;
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
}

.contact-item {
    margin-top: 0rem; 
}

.portrait {
    text-align: right;
    grid-column-start: 3;
    grid-row-start: 1;
    grid-row-end: 3;
}

.author-img {
    width: 5rem;
    height: 7rem;
}

section {
    display: inline-table;
    margin-top: .8rem;
    width: 100%;
    hyphens: auto; 
}

.section-title {
    font-size: 1.2rem;
    border-bottom: 0.1rem solid #adb5bd;
    min-width: 10rem; 
}

.block {
    margin-top: .2rem; 
    display: grid;
    grid-template-columns: repeat(2, auto);
    grid-template-rows: 1fr auto;
}

.block-title {
    font-size: 1rem;
}

.block-subtitle {
    font-size: .8rem;
    text-align: end;
}

.block-content {
    font-size: .9rem;
    line-height: 1.5; 
    grid-column-start: 1;
    grid-column-end: 3;
}

footer {
    font-size: 1rem;
    min-height: 3rem;
    line-height: 3rem;
    margin-top: 1rem;
    margin-bottom: 1rem; 
}